{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Lesson-02"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.datasets import load_boston"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "data  = load_boston()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": "['DESCR', 'data', 'feature_names', 'filename', 'target']"
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dir(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      ".. _boston_dataset:\n",
      "\n",
      "Boston house prices dataset\n",
      "---------------------------\n",
      "\n",
      "**Data Set Characteristics:**  \n",
      "\n",
      "    :Number of Instances: 506 \n",
      "\n",
      "    :Number of Attributes: 13 numeric/categorical predictive. Median Value (attribute 14) is usually the target.\n",
      "\n",
      "    :Attribute Information (in order):\n",
      "        - CRIM     per capita crime rate by town\n",
      "        - ZN       proportion of residential land zoned for lots over 25,000 sq.ft.\n",
      "        - INDUS    proportion of non-retail business acres per town\n",
      "        - CHAS     Charles River dummy variable (= 1 if tract bounds river; 0 otherwise)\n",
      "        - NOX      nitric oxides concentration (parts per 10 million)\n",
      "        - RM       average number of rooms per dwelling\n",
      "        - AGE      proportion of owner-occupied units built prior to 1940\n",
      "        - DIS      weighted distances to five Boston employment centres\n",
      "        - RAD      index of accessibility to radial highways\n",
      "        - TAX      full-value property-tax rate per $10,000\n",
      "        - PTRATIO  pupil-teacher ratio by town\n",
      "        - B        1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town\n",
      "        - LSTAT    % lower status of the population\n",
      "        - MEDV     Median value of owner-occupied homes in $1000's\n",
      "\n",
      "    :Missing Attribute Values: None\n",
      "\n",
      "    :Creator: Harrison, D. and Rubinfeld, D.L.\n",
      "\n",
      "This is a copy of UCI ML housing dataset.\n",
      "https://archive.ics.uci.edu/ml/machine-learning-databases/housing/\n",
      "\n",
      "\n",
      "This dataset was taken from the StatLib library which is maintained at Carnegie Mellon University.\n",
      "\n",
      "The Boston house-price data of Harrison, D. and Rubinfeld, D.L. 'Hedonic\n",
      "prices and the demand for clean air', J. Environ. Economics & Management,\n",
      "vol.5, 81-102, 1978.   Used in Belsley, Kuh & Welsch, 'Regression diagnostics\n",
      "...', Wiley, 1980.   N.B. Various transformations are used in the table on\n",
      "pages 244-261 of the latter.\n",
      "\n",
      "The Boston house-price data has been used in many machine learning papers that address regression\n",
      "problems.   \n",
      "     \n",
      ".. topic:: References\n",
      "\n",
      "   - Belsley, Kuh & Welsch, 'Regression diagnostics: Identifying Influential Data and Sources of Collinearity', Wiley, 1980. 244-261.\n",
      "   - Quinlan,R. (1993). Combining Instance-Based and Model-Based Learning. In Proceedings on the Tenth International Conference of Machine Learning, 236-243, University of Massachusetts, Amherst. Morgan Kaufmann.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(data.DESCR)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "X, y = data['data'], data['target']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([2.7310e-02, 0.0000e+00, 7.0700e+00, 0.0000e+00, 4.6900e-01,\n       6.4210e+00, 7.8900e+01, 4.9671e+00, 2.0000e+00, 2.4200e+02,\n       1.7800e+01, 3.9690e+02, 9.1400e+00])"
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "(506, 506)"
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(X), len(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "def draw_rm_and_price():\n",
    "    plt.scatter(X[:, 5], y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw_rm_and_price()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 需要依据一个X，来预测对应的y是多少，rm ->y"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Simplest Method!!!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([6.575, 6.421, 7.185, 6.998, 7.147, 6.43 , 6.012, 6.172, 5.631,\n       6.004, 6.377, 6.009, 5.889, 5.949, 6.096, 5.834, 5.935, 5.99 ,\n       5.456, 5.727, 5.57 , 5.965, 6.142, 5.813, 5.924, 5.599, 5.813,\n       6.047, 6.495, 6.674, 5.713, 6.072, 5.95 , 5.701, 6.096, 5.933,\n       5.841, 5.85 , 5.966, 6.595, 7.024, 6.77 , 6.169, 6.211, 6.069,\n       5.682, 5.786, 6.03 , 5.399, 5.602, 5.963, 6.115, 6.511, 5.998,\n       5.888, 7.249, 6.383, 6.816, 6.145, 5.927, 5.741, 5.966, 6.456,\n       6.762, 7.104, 6.29 , 5.787, 5.878, 5.594, 5.885, 6.417, 5.961,\n       6.065, 6.245, 6.273, 6.286, 6.279, 6.14 , 6.232, 5.874, 6.727,\n       6.619, 6.302, 6.167, 6.389, 6.63 , 6.015, 6.121, 7.007, 7.079,\n       6.417, 6.405, 6.442, 6.211, 6.249, 6.625, 6.163, 8.069, 7.82 ,\n       7.416, 6.727, 6.781, 6.405, 6.137, 6.167, 5.851, 5.836, 6.127,\n       6.474, 6.229, 6.195, 6.715, 5.913, 6.092, 6.254, 5.928, 6.176,\n       6.021, 5.872, 5.731, 5.87 , 6.004, 5.961, 5.856, 5.879, 5.986,\n       5.613, 5.693, 6.431, 5.637, 6.458, 6.326, 6.372, 5.822, 5.757,\n       6.335, 5.942, 6.454, 5.857, 6.151, 6.174, 5.019, 5.403, 5.468,\n       4.903, 6.13 , 5.628, 4.926, 5.186, 5.597, 6.122, 5.404, 5.012,\n       5.709, 6.129, 6.152, 5.272, 6.943, 6.066, 6.51 , 6.25 , 7.489,\n       7.802, 8.375, 5.854, 6.101, 7.929, 5.877, 6.319, 6.402, 5.875,\n       5.88 , 5.572, 6.416, 5.859, 6.546, 6.02 , 6.315, 6.86 , 6.98 ,\n       7.765, 6.144, 7.155, 6.563, 5.604, 6.153, 7.831, 6.782, 6.556,\n       7.185, 6.951, 6.739, 7.178, 6.8  , 6.604, 7.875, 7.287, 7.107,\n       7.274, 6.975, 7.135, 6.162, 7.61 , 7.853, 8.034, 5.891, 6.326,\n       5.783, 6.064, 5.344, 5.96 , 5.404, 5.807, 6.375, 5.412, 6.182,\n       5.888, 6.642, 5.951, 6.373, 6.951, 6.164, 6.879, 6.618, 8.266,\n       8.725, 8.04 , 7.163, 7.686, 6.552, 5.981, 7.412, 8.337, 8.247,\n       6.726, 6.086, 6.631, 7.358, 6.481, 6.606, 6.897, 6.095, 6.358,\n       6.393, 5.593, 5.605, 6.108, 6.226, 6.433, 6.718, 6.487, 6.438,\n       6.957, 8.259, 6.108, 5.876, 7.454, 8.704, 7.333, 6.842, 7.203,\n       7.52 , 8.398, 7.327, 7.206, 5.56 , 7.014, 8.297, 7.47 , 5.92 ,\n       5.856, 6.24 , 6.538, 7.691, 6.758, 6.854, 7.267, 6.826, 6.482,\n       6.812, 7.82 , 6.968, 7.645, 7.923, 7.088, 6.453, 6.23 , 6.209,\n       6.315, 6.565, 6.861, 7.148, 6.63 , 6.127, 6.009, 6.678, 6.549,\n       5.79 , 6.345, 7.041, 6.871, 6.59 , 6.495, 6.982, 7.236, 6.616,\n       7.42 , 6.849, 6.635, 5.972, 4.973, 6.122, 6.023, 6.266, 6.567,\n       5.705, 5.914, 5.782, 6.382, 6.113, 6.426, 6.376, 6.041, 5.708,\n       6.415, 6.431, 6.312, 6.083, 5.868, 6.333, 6.144, 5.706, 6.031,\n       6.316, 6.31 , 6.037, 5.869, 5.895, 6.059, 5.985, 5.968, 7.241,\n       6.54 , 6.696, 6.874, 6.014, 5.898, 6.516, 6.635, 6.939, 6.49 ,\n       6.579, 5.884, 6.728, 5.663, 5.936, 6.212, 6.395, 6.127, 6.112,\n       6.398, 6.251, 5.362, 5.803, 8.78 , 3.561, 4.963, 3.863, 4.97 ,\n       6.683, 7.016, 6.216, 5.875, 4.906, 4.138, 7.313, 6.649, 6.794,\n       6.38 , 6.223, 6.968, 6.545, 5.536, 5.52 , 4.368, 5.277, 4.652,\n       5.   , 4.88 , 5.39 , 5.713, 6.051, 5.036, 6.193, 5.887, 6.471,\n       6.405, 5.747, 5.453, 5.852, 5.987, 6.343, 6.404, 5.349, 5.531,\n       5.683, 4.138, 5.608, 5.617, 6.852, 5.757, 6.657, 4.628, 5.155,\n       4.519, 6.434, 6.782, 5.304, 5.957, 6.824, 6.411, 6.006, 5.648,\n       6.103, 5.565, 5.896, 5.837, 6.202, 6.193, 6.38 , 6.348, 6.833,\n       6.425, 6.436, 6.208, 6.629, 6.461, 6.152, 5.935, 5.627, 5.818,\n       6.406, 6.219, 6.485, 5.854, 6.459, 6.341, 6.251, 6.185, 6.417,\n       6.749, 6.655, 6.297, 7.393, 6.728, 6.525, 5.976, 5.936, 6.301,\n       6.081, 6.701, 6.376, 6.317, 6.513, 6.209, 5.759, 5.952, 6.003,\n       5.926, 5.713, 6.167, 6.229, 6.437, 6.98 , 5.427, 6.162, 6.484,\n       5.304, 6.185, 6.229, 6.242, 6.75 , 7.061, 5.762, 5.871, 6.312,\n       6.114, 5.905, 5.454, 5.414, 5.093, 5.983, 5.983, 5.707, 5.926,\n       5.67 , 5.39 , 5.794, 6.019, 5.569, 6.027, 6.593, 6.12 , 6.976,\n       6.794, 6.03 ])"
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X[:, 5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([24. , 21.6, 34.7, 33.4, 36.2, 28.7, 22.9, 27.1, 16.5, 18.9, 15. ,\n       18.9, 21.7, 20.4, 18.2, 19.9, 23.1, 17.5, 20.2, 18.2, 13.6, 19.6,\n       15.2, 14.5, 15.6, 13.9, 16.6, 14.8, 18.4, 21. , 12.7, 14.5, 13.2,\n       13.1, 13.5, 18.9, 20. , 21. , 24.7, 30.8, 34.9, 26.6, 25.3, 24.7,\n       21.2, 19.3, 20. , 16.6, 14.4, 19.4, 19.7, 20.5, 25. , 23.4, 18.9,\n       35.4, 24.7, 31.6, 23.3, 19.6, 18.7, 16. , 22.2, 25. , 33. , 23.5,\n       19.4, 22. , 17.4, 20.9, 24.2, 21.7, 22.8, 23.4, 24.1, 21.4, 20. ,\n       20.8, 21.2, 20.3, 28. , 23.9, 24.8, 22.9, 23.9, 26.6, 22.5, 22.2,\n       23.6, 28.7, 22.6, 22. , 22.9, 25. , 20.6, 28.4, 21.4, 38.7, 43.8,\n       33.2, 27.5, 26.5, 18.6, 19.3, 20.1, 19.5, 19.5, 20.4, 19.8, 19.4,\n       21.7, 22.8, 18.8, 18.7, 18.5, 18.3, 21.2, 19.2, 20.4, 19.3, 22. ,\n       20.3, 20.5, 17.3, 18.8, 21.4, 15.7, 16.2, 18. , 14.3, 19.2, 19.6,\n       23. , 18.4, 15.6, 18.1, 17.4, 17.1, 13.3, 17.8, 14. , 14.4, 13.4,\n       15.6, 11.8, 13.8, 15.6, 14.6, 17.8, 15.4, 21.5, 19.6, 15.3, 19.4,\n       17. , 15.6, 13.1, 41.3, 24.3, 23.3, 27. , 50. , 50. , 50. , 22.7,\n       25. , 50. , 23.8, 23.8, 22.3, 17.4, 19.1, 23.1, 23.6, 22.6, 29.4,\n       23.2, 24.6, 29.9, 37.2, 39.8, 36.2, 37.9, 32.5, 26.4, 29.6, 50. ,\n       32. , 29.8, 34.9, 37. , 30.5, 36.4, 31.1, 29.1, 50. , 33.3, 30.3,\n       34.6, 34.9, 32.9, 24.1, 42.3, 48.5, 50. , 22.6, 24.4, 22.5, 24.4,\n       20. , 21.7, 19.3, 22.4, 28.1, 23.7, 25. , 23.3, 28.7, 21.5, 23. ,\n       26.7, 21.7, 27.5, 30.1, 44.8, 50. , 37.6, 31.6, 46.7, 31.5, 24.3,\n       31.7, 41.7, 48.3, 29. , 24. , 25.1, 31.5, 23.7, 23.3, 22. , 20.1,\n       22.2, 23.7, 17.6, 18.5, 24.3, 20.5, 24.5, 26.2, 24.4, 24.8, 29.6,\n       42.8, 21.9, 20.9, 44. , 50. , 36. , 30.1, 33.8, 43.1, 48.8, 31. ,\n       36.5, 22.8, 30.7, 50. , 43.5, 20.7, 21.1, 25.2, 24.4, 35.2, 32.4,\n       32. , 33.2, 33.1, 29.1, 35.1, 45.4, 35.4, 46. , 50. , 32.2, 22. ,\n       20.1, 23.2, 22.3, 24.8, 28.5, 37.3, 27.9, 23.9, 21.7, 28.6, 27.1,\n       20.3, 22.5, 29. , 24.8, 22. , 26.4, 33.1, 36.1, 28.4, 33.4, 28.2,\n       22.8, 20.3, 16.1, 22.1, 19.4, 21.6, 23.8, 16.2, 17.8, 19.8, 23.1,\n       21. , 23.8, 23.1, 20.4, 18.5, 25. , 24.6, 23. , 22.2, 19.3, 22.6,\n       19.8, 17.1, 19.4, 22.2, 20.7, 21.1, 19.5, 18.5, 20.6, 19. , 18.7,\n       32.7, 16.5, 23.9, 31.2, 17.5, 17.2, 23.1, 24.5, 26.6, 22.9, 24.1,\n       18.6, 30.1, 18.2, 20.6, 17.8, 21.7, 22.7, 22.6, 25. , 19.9, 20.8,\n       16.8, 21.9, 27.5, 21.9, 23.1, 50. , 50. , 50. , 50. , 50. , 13.8,\n       13.8, 15. , 13.9, 13.3, 13.1, 10.2, 10.4, 10.9, 11.3, 12.3,  8.8,\n        7.2, 10.5,  7.4, 10.2, 11.5, 15.1, 23.2,  9.7, 13.8, 12.7, 13.1,\n       12.5,  8.5,  5. ,  6.3,  5.6,  7.2, 12.1,  8.3,  8.5,  5. , 11.9,\n       27.9, 17.2, 27.5, 15. , 17.2, 17.9, 16.3,  7. ,  7.2,  7.5, 10.4,\n        8.8,  8.4, 16.7, 14.2, 20.8, 13.4, 11.7,  8.3, 10.2, 10.9, 11. ,\n        9.5, 14.5, 14.1, 16.1, 14.3, 11.7, 13.4,  9.6,  8.7,  8.4, 12.8,\n       10.5, 17.1, 18.4, 15.4, 10.8, 11.8, 14.9, 12.6, 14.1, 13. , 13.4,\n       15.2, 16.1, 17.8, 14.9, 14.1, 12.7, 13.5, 14.9, 20. , 16.4, 17.7,\n       19.5, 20.2, 21.4, 19.9, 19. , 19.1, 19.1, 20.1, 19.9, 19.6, 23.2,\n       29.8, 13.8, 13.3, 16.7, 12. , 14.6, 21.4, 23. , 23.7, 25. , 21.8,\n       20.6, 21.2, 19.1, 20.6, 15.2,  7. ,  8.1, 13.6, 20.1, 21.8, 24.5,\n       23.1, 19.7, 18.3, 21.2, 17.5, 16.8, 22.4, 20.6, 23.9, 22. , 11.9])"
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "rm_to_price = {rm : p for rm, p in zip(X[:, 5], y)}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "ename": "KeyError",
     "evalue": "6.88",
     "output_type": "error",
     "traceback": [
      "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
      "\u001B[1;31mKeyError\u001B[0m                                  Traceback (most recent call last)",
      "\u001B[1;32m<ipython-input-15-e9b592a00e37>\u001B[0m in \u001B[0;36m<module>\u001B[1;34m\u001B[0m\n\u001B[1;32m----> 1\u001B[1;33m \u001B[0mrm_to_price\u001B[0m\u001B[1;33m[\u001B[0m\u001B[1;36m6.88\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m      2\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n",
      "\u001B[1;31mKeyError\u001B[0m: 6.88"
     ]
    }
   ],
   "source": [
    "rm_to_price[6.88]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def distance(x1, x2):\n",
    "    return (x1 - x2) **2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "distance(0, 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "distance(-19, 18)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "rm_data = X[:, 5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 根据相似数据 来预测不知道的值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def k_neartest_model(x, k=5): # K近邻模型\n",
    "        query_x = x\n",
    "        k_nearest = k\n",
    "        nearted_x_and_ys = sorted(rm_to_price.items(), key=lambda r_p: distance(r_p[0], query_x))[:k_nearest]\n",
    "        print(nearted_x_and_ys)\n",
    "        ys = [y for x, y in nearted_x_and_ys]\n",
    "        return np.mean(ys)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "k_neartest_model(8.9)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 时间复杂度"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "O(N) # 和我们观测到的数据量成正比，观测的数据量，现在的情况下，常常会有几十万。几百万的数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 空间复杂度"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "O(N) 非常耗费空间"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Model ->Lazy Learning"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Outlinear 异常值"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 我们现在要有更加高级的抽象方法了！！"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 我们不仅仅要死记硬背！我们还要抽象出一个函数出来！"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 最简单的找出函数的方法！！！ \n",
    "## 随机，蒙特卡洛"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Function-1:Random Generate"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import random"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def random_linear_function():\n",
    "    min_v, max_v = -100, 100\n",
    "    \n",
    "    k = random.randint(min_v, max_v)\n",
    "    b = random.randint(min_v, max_v)\n",
    "    \n",
    "    return lambda x: k*x +b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "function_we_get = random_linear_function()\n",
    "predicated_y = [function_we_get(x) for x in rm_data]\n",
    "\n",
    "draw_rm_and_price()\n",
    "plt.scatter(rm_data, predicated_y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 我们要找到一个好的函数 来预测"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## ??什么是好？ 怎么定义！"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def loss(predicate_y, y_true):\n",
    "    return np.mean((np.array(predicate_y) - y_true)**2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "list_1 = np.array([1, 2, 3, 4])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "list_2 = np.array([0, 1, 3, 5])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.mean((list_1 - list_2) **2) # numpy broadcast"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "sum_ = 0\n",
    "for x1, x2 in zip(list_1, list_2):\n",
    "    sum_ += (x1 - x2)**2\n",
    "sum_ /= len(list_1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from tqdm import tqdm_notebook"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "trying_time = 10000\n",
    "min_loss = float('inf')\n",
    "optimal_func = None\n",
    "\n",
    "for t in range(trying_time):\n",
    "    function_we_get = random_linear_function()\n",
    "    predicated_y = [function_we_get(x) for x in rm_data]\n",
    "\n",
    "    #draw_rm_and_price()\n",
    "    #plt.scatter(rm_data, predicated_y)\n",
    "    current_loss = loss(predicated_y, y)\n",
    "    \n",
    "    if current_loss < min_loss: \n",
    "        min_loss = current_loss\n",
    "        optimal_func = function_we_get\n",
    "        print('在第{} 次，我们找到了一个更好的函数，它的loss是: {}'.format(t, min_loss))\n",
    "        \n",
    "draw_rm_and_price()\n",
    "plt.scatter(rm_data, optimal_func(rm_data))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Supervised Learning by Partial Loss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def partial_k(k, b, xi, yi):\n",
    "    xi, yi = np.array(xi), np.array(yi)\n",
    "    return -2 * np.sum(xi * (yi - (k*xi +b)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def partial_b(k, b, xi, yi):\n",
    "    xi, yi = np.array(xi), np.array(yi)\n",
    "    return -2 *np.sum(yi - (k*xi +b))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "partial_k(k=123143994, b=20, xi=rm_data, yi=y), partial_b(k=2, b=20, xi=rm_data, yi=y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def model(x, k, b):\n",
    "    return k * x +b\n",
    "    \n",
    "k, b = random.random(), random.random()\n",
    "print('随机生成的k:{}, b:{}'.format(k, b))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "trying_time = 100\n",
    "min_loss = float('inf')\n",
    "optimal_func = None\n",
    "\n",
    "for t in range(trying_time):\n",
    "    learning_rate = 1e-3\n",
    "    k = partial_k(k, b, rm_data, y) *-1 * learning_rate + k\n",
    "    b =  partial_b(k, b, rm_data, y) *-1 * learning_rate + b\n",
    "    predicated_y = model(rm_data, k, b)\n",
    "    \n",
    "    current_loss = loss(predicated_y, y)\n",
    "\n",
    "    if current_loss < min_loss:\n",
    "        min_loss = current_loss\n",
    "        optimal_func = lambda x: model(x, k, b)\n",
    "    \n",
    "        print('在第{} 次，我们找到了一个更好的函数，它的loss是: {}'.format(t, min_loss))\n",
    "        \n",
    "draw_rm_and_price()\n",
    "plt.scatter(rm_data, optimal_func(rm_data))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "%%timeit \n",
    "k_neartest_model(6.88)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "%%timeit\n",
    "optimal_func(6.88)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Machine Leanring\n",
    "## K-nearest\n",
    "## Linear Regression\n",
    "## Loss\n",
    "## Partial Derivative 偏倒数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 非线性的函数 我们怎么拟合？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def random_linear_small():\n",
    "    return lambda x: (random.uniform(-10, 10)) * x +random.uniform(-10, 10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def sigmoid(x):\n",
    "    return 1 / (1 +np.exp(-x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "layers = [r, sigmoid] * 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "layers = [\n",
    "    (r, r),\n",
    "    (sigmoid, sigmoid),\n",
    "    (r, r, r),\n",
    "    (sigmoid, sigmoid),\n",
    "]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def tanh(x):\n",
    "    return np.tanh(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.plot(test_x, tanh(test_x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def one_layer(input_x, nodes):\n",
    "    test_x = input_x\n",
    "    span_indices = sorted(random.sample(range(0, len(test_x)), len(nodes)-1))\n",
    "    span_indices = [0] +span_indices +[None]\n",
    "    \n",
    "    outputs = []\n",
    "    for i, index in enumerate(span_indices[:-1]):\n",
    "        now, next_ = index, span_indices[i+1]\n",
    "        sub_x = test_x[index:span_indices[i+1]]\n",
    "        sub_output = nodes[i](sub_x)\n",
    "        outputs.append(sub_output)\n",
    "\n",
    "    return np.concatenate(outputs)\n",
    "\n",
    "def multiply_layers(input_x, layers):\n",
    "    this_layers_output = one_layer(input_x, layers[0])\n",
    "    \n",
    "    if len(layers) == 1: \n",
    "        return this_layers_output\n",
    "    else:\n",
    "        return multiply_layers(this_layers_output, layers[1:])\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "for _ in range(10):\n",
    "    plt.plot(test_x, multiply_layers(test_x, layers))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## From functions to Graph"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import networkx as nx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "people_relatioship = {\n",
    "    'Wang': ['Liu', 'Tom'],\n",
    "    'Tom': ['Zhang', 'Xu'],\n",
    "    'Xu': ['Zhao', 'Li']\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "nx.draw(nx.Graph(people_relatioship), with_labels=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "node_x, node_k1, node_b1 = 'x', 'k1', 'b1'\n",
    "node_k2, node_b2 = 'k2', 'b2'\n",
    "node_linear_01, node_linear_02, \\\n",
    "node_sigmoid = 'linear_01', 'linear_02', 'sigmoid'\n",
    "node_loss = 'loss'\n",
    "\n",
    "computing_graph = { # represent model \n",
    "    node_x: [node_linear_01],\n",
    "    node_k1: [node_linear_01],\n",
    "    node_b1: [node_linear_01],\n",
    "    node_linear_01: [node_sigmoid],\n",
    "    node_sigmoid: [node_linear_02],\n",
    "    node_k2: [node_linear_02],\n",
    "    node_b2: [node_linear_02],\n",
    "    node_linear_02: [node_loss],\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "graph = nx.DiGraph(computing_graph)\n",
    "layout = nx.layout.spring_layout(graph)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "nx.draw(graph, layout, with_labels=True, node_color='red')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "visited_order = [nod|e_x, node_b1, node_k1, node_linear_01, node_sigmoid, node_k2, node_b2, node_linear_02, node_loss]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "def visited_procedure(graph, posotion, visited_order, step=None, sub_plot_index=None, colors=('red', 'green'), node_size=5):\n",
    "    changed = visited_order[:step] if step is not None else visited_order\n",
    "    \n",
    "    before, after = colors\n",
    "    \n",
    "    color_map = [after if c in changed else before for c in graph]\n",
    "    \n",
    "    nx.draw(graph, posotion, node_color=color_map, with_labels=True, ax=sub_plot_index, node_size=node_size)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "dimension = int(len(visited_order) ** 0.5)\n",
    "\n",
    "fig, ax = plt.subplots(dimension, dimension + 1, figsize=(15, 15))\n",
    "\n",
    "for i in range(len(visited_order) + 1):\n",
    "    ix = np.unravel_index(i, ax.shape)\n",
    "    plt.sca(ax[ix])\n",
    "    ax[ix].title.set_text('Feed Forward:{}'.format(i))\n",
    "    visited_procedure(graph, layout, visited_order, step=i, sub_plot_index=ax[ix], node_size=60)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "dimension = int(len(visited_order) ** 0.5)\n",
    "\n",
    "fig, ax = plt.subplots(dimension, dimension + 1, figsize=(15, 15))\n",
    "\n",
    "for i in range(len(visited_order) + 1):\n",
    "    ix = np.unravel_index(i, ax.shape)\n",
    "    plt.sca(ax[ix])\n",
    "    ax[ix].title.set_text('Feed Forward:{}'.format(i))\n",
    "    visited_procedure(graph, layout, visited_order[::-1], step=i, sub_plot_index=ax[ix], colors=('green', 'red'), node_size=60)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def toplogic(graph):\n",
    "    sorted_node = []\n",
    "    \n",
    "    while len(graph) > 0: \n",
    "\n",
    "        all_inputs = []\n",
    "        all_outputs = []\n",
    "        \n",
    "        for n in graph:\n",
    "            all_inputs += graph[n]\n",
    "            all_outputs.append(n)\n",
    "        \n",
    "        all_inputs = set(all_inputs)\n",
    "        all_outputs = set(all_outputs)\n",
    "    \n",
    "        need_remove = all_outputs - all_inputs  # which in all_inputs but not in all_outputs\n",
    "    \n",
    "        if len(need_remove) > 0: \n",
    "            node = random.choice(list(need_remove))\n",
    "            \n",
    "            visited_next = [node]\n",
    "            if len(graph) == 1:  visited_next += graph[node]\n",
    "                \n",
    "            graph.pop(node)\n",
    "            sorted_node += visited_next\n",
    "\n",
    "            # for _, links in graph.items():\n",
    "            #     if node in links: links.remove(node)\n",
    "        else:\n",
    "            break\n",
    "        \n",
    "    return sorted_node"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "node_linear_01 = 'linear_01'\n",
    "node_linear_02 = 'linear_02'\n",
    "node_linear_03 = 'linear_03'\n",
    "node_linear_04 = 'linear_04'\n",
    "node_linear_05 = 'linear_05'\n",
    "node_linear_06 = 'linear_06'\n",
    "\n",
    "node_k1, node_b1 = 'k1', 'b1'\n",
    "node_k2, node_b2 = 'k2', 'b2'\n",
    "node_k3, node_b3 = 'k3', 'b3'\n",
    "node_k4, node_b4 = 'k4', 'b4'\n",
    "node_k5, node_b5 = 'k5', 'b5'\n",
    "node_k6, node_b6 = 'k6', 'b6'\n",
    "\n",
    "node_sigmoid_01 = 'sigmoid-01'\n",
    "node_sigmoid_02 = 'sigmoid-02'\n",
    "node_sigmoid_03 = 'sigmoid-03'\n",
    "node_sigmoid_04 = 'sigmoid-04'\n",
    "\n",
    "computing_graph = { # represent model \n",
    "    node_x: [node_linear_01],\n",
    "    node_k1: [node_linear_01],\n",
    "    node_b1: [node_linear_01],\n",
    "    \n",
    "    node_x: [node_linear_02],\n",
    "    node_k2:[node_linear_02],\n",
    "    node_b2:[node_linear_03],\n",
    "    \n",
    "    node_linear_01: [node_sigmoid_01, node_sigmoid_02],\n",
    "    node_linear_02: [node_sigmoid_03, node_sigmoid_04],\n",
    "\n",
    "    node_sigmoid_01: [node_linear_04],\n",
    "    node_sigmoid_02: [node_linear_03],\n",
    "    node_sigmoid_03: [node_linear_05],\n",
    "    node_sigmoid_04: [node_linear_06],\n",
    "    \n",
    "    node_linear_03: [node_loss],\n",
    "    node_linear_04: [node_loss],\n",
    "    node_linear_05: [node_loss],\n",
    "    node_linear_06: [node_loss],\n",
    "    \n",
    "}\n",
    "\n",
    "more_complicated_graph = nx.DiGraph(computing_graph)\n",
    "more_complicated_layout = nx.layout.spring_layout(more_complicated_graph)\n",
    "\n",
    "visited_order = toplogic(computing_graph)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "dimension = int(len(visited_order) ** 0.5)\n",
    "\n",
    "fig, ax = plt.subplots(dimension, dimension + 1, figsize=(15, 15))\n",
    "\n",
    "for i in range(len(visited_order) + 1):\n",
    "    ix = np.unravel_index(i, ax.shape)\n",
    "    plt.sca(ax[ix])\n",
    "    ax[ix].title.set_text('Feed Forward:{}'.format(i))\n",
    "    visited_procedure(more_complicated_graph, more_complicated_layout, visited_order, \n",
    "                      step=i, sub_plot_index=ax[ix], colors=('green', 'red'), node_size=60)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "dimension = int(len(visited_order) ** 0.5)\n",
    "\n",
    "fig, ax = plt.subplots(dimension, dimension + 1, figsize=(15, 15))\n",
    "\n",
    "for i in range(len(visited_order) + 1):\n",
    "    ix = np.unravel_index(i, ax.shape)\n",
    "    plt.sca(ax[ix])\n",
    "    ax[ix].title.set_text('Backward:{}'.format(i))\n",
    "    visited_procedure(more_complicated_graph, more_complicated_layout, visited_order[::-1], \n",
    "                      step=i, sub_plot_index=ax[ix], colors=('green', 'red'), node_size=60)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "\n",
    "\n",
    "class Node:\n",
    "    def __init__(self, inputs=[]):\n",
    "        self.inputs = inputs\n",
    "        self.outputs = []\n",
    "\n",
    "        for n in self.inputs:\n",
    "            n.outputs.append(self)\n",
    "            # set 'self' node as inbound_nodes's outbound_nodes\n",
    "\n",
    "        self.value = None\n",
    "\n",
    "        self.gradients = {}\n",
    "        # keys are the inputs to this node, and their\n",
    "        # values are the partials of this node with \n",
    "        # respect to that input.\n",
    "        # \\partial{node}{input_i}\n",
    "        \n",
    "\n",
    "    def forward(self):\n",
    "        '''\n",
    "        Forward propagation. \n",
    "        Compute the output value vased on 'inbound_nodes' and store the \n",
    "        result in self.value\n",
    "        '''\n",
    "\n",
    "        raise NotImplemented\n",
    "    \n",
    "\n",
    "    def backward(self):\n",
    "\n",
    "        raise NotImplemented"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Node:\n",
    "    def __init__(self, inputs=[], name=None, is_trainable=True):\n",
    "        self.inputs = inputs\n",
    "        self.outputs = []\n",
    "        self.name = name\n",
    "        self.is_trainable = is_trainable\n",
    "        \n",
    "        for n in self.inputs:\n",
    "            n.outputs.append(self)\n",
    "        \n",
    "        self.value = None\n",
    "        \n",
    "        self.gradients = {}\n",
    "        \n",
    "    def forward(self):\n",
    "        raise NotImplementedError\n",
    "    \n",
    "    def backward(self):\n",
    "        raise NotImplementedError\n",
    "    \n",
    "    def __repr__(self):\n",
    "        return self.name"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Placeholder(Node):\n",
    "    def __init__(self, name, is_trainable=True):\n",
    "        Node.__init__(self, name=name, is_trainable=is_trainable)\n",
    "        \n",
    "    def forward(self, value=None):\n",
    "        if value is not None: self.value = value\n",
    "    \n",
    "    def backward(self):\n",
    "        self.gradients = {}\n",
    "        for n in self.outputs:\n",
    "            self.gradients[self] = n.gradients[self] * 1\n",
    "\n",
    "class Linear(Node):\n",
    "    def __init__(self, x=None, weigth=None, bias=None, name=None, is_trainable=False):\n",
    "        Node.__init__(self, [x, weigth, bias], name=name, is_trainable=is_trainable)\n",
    "        \n",
    "    def forward(self):\n",
    "        k, x, b = self.inputs[1], self.inputs[0], self.inputs[2]\n",
    "        self.value = k.value * x.value + b.value\n",
    "        \n",
    "    def backward(self):\n",
    "        k, x, b = self.inputs[1], self.inputs[0], self.inputs[2]\n",
    "        \n",
    "        for n in self.outputs:\n",
    "            grad_cost = n.gradients[self]\n",
    "            \n",
    "            self.gradients[k] = grad_cost * x.value\n",
    "            \n",
    "            self.gradients[x] = grad_cost * k.value\n",
    "            \n",
    "            self.gradients[b] = grad_cost * 1\n",
    "    \n",
    "        \n",
    "class Sigmoid(Node):\n",
    "    def __init__(self, x, name=None, is_trainable=False):\n",
    "        Node.__init__(self, [x], name=name, is_trainable=is_trainable)\n",
    "        self.x = self.inputs[0]\n",
    "        \n",
    "    def _sigmoid(self, x):\n",
    "        return 1. / (1 + np.exp(-1 * x))\n",
    "    \n",
    "    def forward(self):\n",
    "        self.value = self._sigmoid(self.x.value)\n",
    "        \n",
    "    def partial(self):\n",
    "        return self._sigmoid(self.x.value) * (1 - self._sigmoid(self.x.value))\n",
    "    \n",
    "    def backward(self):\n",
    "        for n in self.outputs:\n",
    "            grad_cost = n.gradients[self]\n",
    "            self.gradients[self.x] = grad_cost * self.partial() \n",
    "    #    print(self.gradients)\n",
    "    \n",
    "    \n",
    "class Relu(Node):\n",
    "    def __init__(self, x, name=None, is_trainable=False):\n",
    "        Node.__init__(self, [x], name=name, is_trainable=is_trainable)\n",
    "        self.x = x\n",
    "        \n",
    "    def forward(self):\n",
    "        self.value = self.x.value * (self.x.value > 0)\n",
    "        \n",
    "    def backward(self):\n",
    "        for n in self.outputs:\n",
    "            grad_cost = n.gradients[self]\n",
    "            self.gradients[self.x] = grad_cost * (self.x.value > 0) \n",
    "        \n",
    "\n",
    "class L2_LOSS(Node):\n",
    "    def __init__(self, y, y_hat, name=None, is_trainable=False):\n",
    "        Node.__init__(self, [y, y_hat], name=name, is_trainable=is_trainable)\n",
    "        self.y = y\n",
    "        self.y_hat = y_hat\n",
    "        \n",
    "    def forward(self):        \n",
    "        y_v = np.array(self.y.value)\n",
    "        yhat_v = np.array(self.y_hat.value)\n",
    "        self.value = np.mean((y_v - yhat_v) ** 2)\n",
    "        \n",
    "    def backward(self):\n",
    "        # 1/n sum (y- yhat)**2\n",
    "        y_v = np.array(self.y.value)\n",
    "        yhat_v = np.array(self.y_hat.value)\n",
    "        self.gradients[self.y] = 2 * np.mean((y_v - yhat_v))\n",
    "        self.gradients[self.y_hat] = -2 * np.mean((y_v - yhat_v))\n",
    "     #   print(self.gradients)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def topological_sort_feed_dict(feed_dict):\n",
    "    graph = convert_feed_dict_to_graph(feed_dict)\n",
    "    \n",
    "    return toplogic(graph)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def convert_feed_dict_to_graph(feed_dict):\n",
    "    computing_graph = defaultdict(list)\n",
    "    \n",
    "    nodes = [n for n in feed_dict]\n",
    "    \n",
    "    while nodes:\n",
    "        n = nodes.pop(0) \n",
    "        \n",
    "        if isinstance(n, Placeholder):\n",
    "            n.value = feed_dict[n]\n",
    "        \n",
    "        if n in computing_graph: continue\n",
    "\n",
    "        for m in n.outputs:\n",
    "            computing_graph[n].append(m)\n",
    "            nodes.append(m)\n",
    "    \n",
    "    return computing_graph"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def forward_and_backward(graph_order, monitor=False):\n",
    "    # 整体的参数就更新了一次\n",
    "    for node in graph_order:\n",
    "        if monitor:\n",
    "            print('forward computing -- {}'.format(node))\n",
    "        node.forward()\n",
    "    \n",
    "    for node in graph_order[::-1]:\n",
    "        if monitor:\n",
    "            print('backward computing -- {}'.format(node))\n",
    "        node.backward()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def optimize(graph, learning_rate=1e-2):\n",
    "    # there are so many other update / optimization methods\n",
    "    # such as Adam, Mom, \n",
    "    for t in graph:\n",
    "        if t.is_trainable:\n",
    "            t.value += -1 * learning_rate * t.gradients[t]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from tqdm import tqdm_notebook"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from collections import defaultdict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import random"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = load_boston()\n",
    "X_, y_ = data['data'], data['target']\n",
    "X_rm = X_[:, 5]\n",
    "\n",
    "w1_, b1_ = np.random.normal(), np.random.normal()\n",
    "w2_, b2_ = np.random.normal(), np.random.normal()\n",
    "w3_, b3_ = np.random.normal(), np.random.normal()\n",
    "\n",
    "\n",
    "X, y = Placeholder(name='X', is_trainable=False), Placeholder(name='y', is_trainable=False)\n",
    "w1, b1 = Placeholder(name='w1'), Placeholder(name='b1')\n",
    "w2, b2 = Placeholder(name='w2'), Placeholder(name='b2')\n",
    "\n",
    "# build model\n",
    "output1 = Linear(X, w1, b1, name='linear-01')\n",
    "output2 = Sigmoid(output1, name='activation')\n",
    "#output2 = Relu(output1, name='activation')\n",
    "y_hat = Linear(output2, w2, b2, name='y_hat')\n",
    "cost = L2_LOSS(y, y_hat, name='cost')\n",
    "\n",
    "feed_dict = {\n",
    "    X: X_rm,\n",
    "    y: y_,\n",
    "    w1: w1_,\n",
    "    w2: w2_,\n",
    "    b1: b1_,\n",
    "    b2: b2_,\n",
    "}\n",
    "\n",
    "graph_sort = topological_sort_feed_dict(feed_dict)\n",
    "\n",
    "epoch = 5000\n",
    "batch_num = 100\n",
    "\n",
    "learning_rate = 1e-3\n",
    "\n",
    "losses = []\n",
    "\n",
    "for e in tqdm_notebook(range(epoch)):\n",
    "    loss = 0\n",
    "    \n",
    "    for b in range(batch_num):\n",
    "        index = np.random.choice(range(len(X_rm)))\n",
    "        X.value = X_rm[index]\n",
    "        y.value = y_[index]\n",
    "    \n",
    "        forward_and_backward(graph_sort, monitor=False)\n",
    "    \n",
    "        optimize(graph_sort, learning_rate)\n",
    "    \n",
    "#    if e % 100000 == 0: \n",
    "#        print('cost==', cost.value)\n",
    "        \n",
    "        loss += cost.value\n",
    "\n",
    "    losses.append(loss / batch_num)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def predicate(x, graph):\n",
    "    X.value = x\n",
    "    forward_and_backward(graph_sort)\n",
    "    return y_hat.value"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.plot(losses)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.scatter(X_rm, y_)\n",
    "plot_x = np.linspace(min(X_rm), max(X_rm), 1000)\n",
    "plt.scatter(plot_x, [predicate(x, graph_sort) for x in plot_x], s=30)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import random\n",
    "\n",
    "class Node:\n",
    "    def __init__(self, inputs=[]):\n",
    "        self.inputs = inputs\n",
    "        self.outputs = []\n",
    "\n",
    "        for n in self.inputs:\n",
    "            n.outputs.append(self)\n",
    "            # set 'self' node as inbound_nodes's outbound_nodes\n",
    "\n",
    "        self.value = None\n",
    "\n",
    "        self.gradients = {}\n",
    "        # keys are the inputs to this node, and their\n",
    "        # values are the partials of this node with \n",
    "        # respect to that input.\n",
    "        # \\partial{node}{input_i}\n",
    "        \n",
    "\n",
    "    def forward(self):\n",
    "        '''\n",
    "        Forward propagation. \n",
    "        Compute the output value vased on 'inbound_nodes' and store the \n",
    "        result in self.value\n",
    "        '''\n",
    "\n",
    "        raise NotImplemented\n",
    "    \n",
    "\n",
    "    def backward(self):\n",
    "\n",
    "        raise NotImplemented\n",
    "        \n",
    "class Placeholder(Node):\n",
    "    def __init__(self):\n",
    "        '''\n",
    "        An Input node has no inbound nodes.\n",
    "        So no need to pass anything to the Node instantiator.\n",
    "        '''\n",
    "        Node.__init__(self)\n",
    "\n",
    "    def forward(self, value=None):\n",
    "        '''\n",
    "        Only input node is the node where the value may be passed\n",
    "        as an argument to forward().\n",
    "        All other node implementations should get the value of the \n",
    "        previous node from self.inbound_nodes\n",
    "        \n",
    "        Example: \n",
    "        val0: self.inbound_nodes[0].value\n",
    "        '''\n",
    "        if value is not None:\n",
    "            self.value = value\n",
    "            ## It's is input node, when need to forward, this node initiate self's value.\n",
    "\n",
    "        # Input subclass just holds a value, such as a data feature or a model parameter(weight/bias)\n",
    "        \n",
    "    def backward(self):\n",
    "        self.gradients = {self:0}\n",
    "        for n in self.outputs:\n",
    "            grad_cost = n.gradients[self]\n",
    "            self.gradients[self] = grad_cost * 1\n",
    "            \n",
    "        \n",
    "        # input N --> N1, N2\n",
    "        # \\partial L / \\partial N \n",
    "        # ==> \\partial L / \\partial N1 * \\ partial N1 / \\partial N\n",
    "\n",
    "\n",
    "class Add(Node):\n",
    "    def __init__(self, *nodes):\n",
    "        Node.__init__(self, nodes)\n",
    "\n",
    "\n",
    "    def forward(self):\n",
    "        self.value = sum(map(lambda n: n.value, self.inputs))\n",
    "        ## when execute forward, this node caculate value as defined.\n",
    "\n",
    "class Linear(Node):\n",
    "    def __init__(self, nodes, weights, bias):\n",
    "        Node.__init__(self, [nodes, weights, bias])\n",
    "\n",
    "    def forward(self):\n",
    "        inputs = self.inputs[0].value\n",
    "        weights = self.inputs[1].value\n",
    "        bias = self.inputs[2].value\n",
    "\n",
    "        self.value = np.dot(inputs, weights) + bias\n",
    "        \n",
    "    def backward(self):\n",
    "\n",
    "        # initial a partial for each of the inbound_nodes.\n",
    "        self.gradients = {n: np.zeros_like(n.value) for n in self.inputs}\n",
    "\n",
    "        for n in self.outputs:\n",
    "            # Get the partial of the cost w.r.t this node.\n",
    "            grad_cost = n.gradients[self]\n",
    "\n",
    "            self.gradients[self.inputs[0]] = np.dot(grad_cost, self.inputs[1].value.T)\n",
    "            self.gradients[self.inputs[1]] = np.dot(self.inputs[0].value.T, grad_cost)\n",
    "            self.gradients[self.inputs[2]] = np.sum(grad_cost, axis=0, keepdims=False)\n",
    "\n",
    "        # WX + B / W ==> X\n",
    "        # WX + B / X ==> W\n",
    "\n",
    "class Sigmoid(Node):\n",
    "    def __init__(self, node):\n",
    "        Node.__init__(self, [node])\n",
    "\n",
    "\n",
    "    def _sigmoid(self, x):\n",
    "        return 1./(1 + np.exp(-1 * x))\n",
    "\n",
    "    def forward(self):\n",
    "        self.x = self.inputs[0].value\n",
    "        self.value = self._sigmoid(self.x)\n",
    "\n",
    "    def backward(self):\n",
    "        self.partial = self._sigmoid(self.x) * (1 - self._sigmoid(self.x))\n",
    "        \n",
    "        # y = 1 / (1 + e^-x)\n",
    "        # y' = 1 / (1 + e^-x) (1 - 1 / (1 + e^-x))\n",
    "        \n",
    "        self.gradients = {n: np.zeros_like(n.value) for n in self.inputs}\n",
    "\n",
    "        for n in self.outputs:\n",
    "            grad_cost = n.gradients[self]  # Get the partial of the cost with respect to this node.\n",
    "\n",
    "            self.gradients[self.inputs[0]] = grad_cost * self.partial\n",
    "            # use * to keep all the dimension same!.\n",
    "\n",
    "\n",
    "\n",
    "class MSE(Node):\n",
    "    def __init__(self, y, a):\n",
    "        Node.__init__(self, [y, a])\n",
    "\n",
    "\n",
    "    def forward(self):\n",
    "        y = self.inputs[0].value.reshape(-1, 1)\n",
    "        a = self.inputs[1].value.reshape(-1, 1)\n",
    "        assert(y.shape == a.shape)\n",
    "\n",
    "        self.m = self.inputs[0].value.shape[0]\n",
    "        self.diff = y - a\n",
    "\n",
    "        self.value = np.mean(self.diff**2)\n",
    "\n",
    "\n",
    "    def backward(self):\n",
    "        self.gradients[self.inputs[0]] = (2 / self.m) * self.diff\n",
    "        self.gradients[self.inputs[1]] = (-2 / self.m) * self.diff\n",
    "\n",
    "\n",
    "def forward_and_backward(outputnode, graph):\n",
    "    # execute all the forward method of sorted_nodes.\n",
    "\n",
    "    ## In practice, it's common to feed in mutiple data example in each forward pass rather than just 1. Because the examples can be processed in parallel. The number of examples is called batch size.\n",
    "    for n in graph:\n",
    "        n.forward()\n",
    "        ## each node execute forward, get self.value based on the topological sort result.\n",
    "\n",
    "    for n in  graph[::-1]:\n",
    "        n.backward()\n",
    "\n",
    "    #return outputnode.value\n",
    "\n",
    "###   v -->  a -->  C\n",
    "##    b --> C\n",
    "##    b --> v -- a --> C\n",
    "##    v --> v ---> a -- > C\n",
    "\n",
    "def toplogic(graph):\n",
    "    sorted_node = []\n",
    "    \n",
    "    while len(graph) > 0: \n",
    "\n",
    "        all_inputs = []\n",
    "        all_outputs = []\n",
    "        \n",
    "        for n in graph:\n",
    "            all_inputs += graph[n]\n",
    "            all_outputs.append(n)\n",
    "        \n",
    "        all_inputs = set(all_inputs)\n",
    "        all_outputs = set(all_outputs)\n",
    "    \n",
    "        need_remove = all_outputs - all_inputs  # which in all_inputs but not in all_outputs\n",
    "    \n",
    "        if len(need_remove) > 0: \n",
    "            node = random.choice(list(need_remove))\n",
    "\n",
    "            need_to_visited = [node]\n",
    "\n",
    "            if len(graph) == 1: need_to_visited += graph[node]\n",
    "                \n",
    "            graph.pop(node)\n",
    "            sorted_node += need_to_visited\n",
    "        \n",
    "            for _, links in graph.items():\n",
    "                if node in links: links.remove(node)\n",
    "        else: # have cycle\n",
    "            break\n",
    "        \n",
    "    return sorted_node\n",
    "\n",
    "from collections import defaultdict\n",
    "\n",
    "\n",
    "def convert_feed_dict_to_graph(feed_dict):\n",
    "    computing_graph = defaultdict(list)\n",
    "    \n",
    "    nodes = [n for n in feed_dict]\n",
    "    \n",
    "    while nodes:\n",
    "        n = nodes.pop(0) \n",
    "        \n",
    "        if isinstance(n, Placeholder):\n",
    "            n.value = feed_dict[n]\n",
    "        \n",
    "        if n in computing_graph: continue\n",
    "\n",
    "        for m in n.outputs:\n",
    "            computing_graph[n].append(m)\n",
    "            nodes.append(m)\n",
    "    \n",
    "    return computing_graph\n",
    "\n",
    "def topological_sort_feed_dict(feed_dict):\n",
    "    graph = convert_feed_dict_to_graph(feed_dict)\n",
    "    \n",
    "    return toplogic(graph)\n",
    "\n",
    "\n",
    "def optimize(trainables, learning_rate=1e-2):\n",
    "    # there are so many other update / optimization methods\n",
    "    # such as Adam, Mom, \n",
    "    for t in trainables:\n",
    "        t.value += -1 * learning_rate * t.gradients[t]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from sklearn.datasets import load_boston\n",
    "from sklearn.utils import shuffle, resample\n",
    "#from miniflow import *\n",
    "\n",
    "# Load data\n",
    "data = load_boston()\n",
    "X_ = data['data']\n",
    "y_ = data['target']\n",
    "\n",
    "# Normalize data\n",
    "X_ = (X_ - np.mean(X_, axis=0)) / np.std(X_, axis=0)\n",
    "\n",
    "n_features = X_.shape[1]\n",
    "n_hidden = 10\n",
    "W1_ = np.random.randn(n_features, n_hidden)\n",
    "b1_ = np.zeros(n_hidden)\n",
    "W2_ = np.random.randn(n_hidden, 1)\n",
    "b2_ = np.zeros(1)\n",
    "\n",
    "# Neural network\n",
    "X, y = Placeholder(), Placeholder()\n",
    "W1, b1 = Placeholder(), Placeholder()\n",
    "W2, b2 = Placeholder(), Placeholder()\n",
    "\n",
    "l1 = Linear(X, W1, b1)\n",
    "s1 = Sigmoid(l1)\n",
    "l2 = Linear(s1, W2, b2)\n",
    "cost = MSE(y, l2)\n",
    "\n",
    "feed_dict = {\n",
    "    X: X_,\n",
    "    y: y_,\n",
    "    W1: W1_,\n",
    "    b1: b1_,\n",
    "    W2: W2_,\n",
    "    b2: b2_\n",
    "}\n",
    "\n",
    "epochs = 5000\n",
    "# Total number of examples\n",
    "m = X_.shape[0]\n",
    "batch_size = 16\n",
    "steps_per_epoch = m // batch_size\n",
    "\n",
    "graph = topological_sort_feed_dict(feed_dict)\n",
    "trainables = [W1, b1, W2, b2]\n",
    "\n",
    "print(\"Total number of examples = {}\".format(m))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "losses = []\n",
    "\n",
    "for i in range(epochs):\n",
    "    loss = 0\n",
    "    for j in range(steps_per_epoch):\n",
    "        # Step 1\n",
    "        # Randomly sample a batch of examples\n",
    "        X_batch, y_batch = resample(X_, y_, n_samples=batch_size)\n",
    "\n",
    "        # Reset value of X and y Inputs\n",
    "        X.value = X_batch\n",
    "        y.value = y_batch\n",
    "\n",
    "        # Step 2\n",
    "        _ = None\n",
    "        forward_and_backward(_, graph) # set output node not important.\n",
    "\n",
    "        # Step 3\n",
    "        rate = 1e-2\n",
    "    \n",
    "        optimize(trainables, rate)\n",
    "\n",
    "        loss += graph[-1].value\n",
    "    \n",
    "    if i % 100 == 0: \n",
    "        print(\"Epoch: {}, Loss: {:.3f}\".format(i+1, loss/steps_per_epoch))\n",
    "        losses.append(loss/steps_per_epoch)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "name": "pycharm-a2eace9b",
   "language": "python",
   "display_name": "PyCharm (neuralnrtwork)"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}